На этой странице шаг за шагом объясняется "как скомпилировать FreeCAD 0.19 или новее в Windows"". Для других платформ см.Compiling.
Для компиляции FreeCAD в Windows требуется несколько инструментов и библиотек.
Ниже мы опишем обработку исходного кода с использованием интерфейса TortoiseGit. Этот интерфейс интегрируется непосредственно в проводник файлов Windows и имеет большое сообщество пользователей, которые могут получить помощь в случае возникновения проблем.
Теперь вы можете получить исходный код FreeCAD:
При использовании TortoiseGit Интерфейс Git:
https://github.com/FreeCAD/FreeCAD.git
и нажмите "ОК".
Последний исходный код будет загружен из репозитория FreeCAD Git, и Git будет отслеживать папку.
Чтобы создать локальную ветвь отслеживания и загрузить исходный код, откройте терминал (command prompt) и перейдите в каталог, в котором вы хотите получить исходный код, затем введите:
git clone --recurse-submodules https://github.com/FreeCAD/FreeCAD.git
По умолчанию (recommended) используется компилятор MS Visual Studio (MSVC). Хотя, возможно, можно использовать другие компиляторы, например gcc через Cygwin или MinGW, это не тестируется и не рассматривается здесь.
Вы можете получить бесплатную версию MSVC (для индивидуального использования), загрузив Community edition of MS Visual Studio.
Для тех, кто хочет избежать установки огромного MSVC только для того, чтобы иметь компилятор, см. CompileOnWindows - Reducing Disk Footprint.
"Примечание:" Несмотря на то, что "Community" выпуск MSVC является бесплатным, для использования среды IDE в течение более чем 30-дневного пробного периода необходимо создать учетную запись Майкрософт. Если вы будете компилировать только с помощью командной строки, вам не понадобится среда разработки и, следовательно, учетная запись Microsoft.
В качестве бесплатной и альтернативной среды разработки с открытым исходным кодом вы можете использовать KDevelop. Вы можете использовать KDevelop для изменения и написания кода на C++, но для компиляции необходимо использовать командную строку.
При необходимости вы можете включить пути к некоторым папкам в переменную системного ПУТИ. Это полезно, если вы хотите получить доступ к программам в этих папках из командной строки/powershell или если вы хотите, чтобы компилятор или CMake находили специальные программы. Кроме того, добавление папок в ПУТЬ может потребоваться, если вы не использовали соответствующие параметры при установке программы.
"C:\Program Files\CMake\bin" по ПУТИ.
C:\Program Files\TortoiseGit\bin по ПУТИ.
Чтобы добавить пути к папкам в переменную PATH:
Как только у вас будут все необходимые инструменты, библиотеки и исходный код FreeCAD, вы будете готовы приступить к процессу настройки и компиляции. Этот процесс будет проходить в пять этапов:
Во-первых, настройте среду сборки с помощью CMake:
Примечание: Важно указать правильный вариант разрядности. Если у вас есть 64-разрядный вариант LibPack, вы также должны использовать компилятор x64.
Это приведет к началу настройки и "завершится ошибкой" из-за отсутствия настроек. Это нормально, вы еще не указали местоположение пакета LibPack. Однако могут возникнуть и другие сбои, которые потребуют некоторых дальнейших действий с вашей стороны.
Если произойдет сбой с сообщением о том, что Visual Studio не найдена, поддержка CMake в MSVC еще не установлена. Для этого:
Если он завершится ошибкой с сообщением о неверной версии Python или отсутствующем Python, то:
Если нет ошибки в Visual Studio или Python, все в порядке, но CMake еще не знает всех необходимых настроек. Поэтому сейчас:
Теперь ошибок быть не должно. Если вы по-прежнему сталкиваетесь с ошибками, которые не можете диагностировать, посетите Install/Compile forum на веб-сайте форума FreeCAD. Если CMake прошел правильно, нажмите на кнопку "Generate". После этого вы можете закрыть CMake и начать компиляцию FreeCAD с помощью Visual Studio. Однако для первой компиляции держите его открытым на случай, если вам захочется или потребуется изменить некоторые параметры процесса сборки.
Система сборки CMake дает вам контроль над некоторыми аспектами процесса сборки. В частности, вы можете включать и выключать некоторые функции или модули с помощью переменных CMake.
Вот описание некоторых из этих переменных:
Variable name | Description | Default |
---|---|---|
BUILD_XXX | Создайте FreeCAD с компонентом XXX. Если вы не хотите/не нуждаетесь в компиляции, например, рабочего стола "OpenSCAD", отключите переменную "BUILD_OPENSCAD". Тогда у FreeCAD не будет этого верстака.
""Примечание: "" Некоторые компоненты требуются для других компонентов. Если вы, например, снимите флажок "BUILD_ROBOT", CMake сообщит вам, что компонент "Путь" не может быть правильно скомпилирован. Поэтому проверьте вывод CMake после изменения параметра BUILD_XXX! |
depends |
BUILD_ENABLE_CXX_STD | Версия стандарта языка C++. "C++14" является максимально возможным для FreeCAD 0.19, в то время как для FreeCAC 0.20 требуется как минимум "C++17". См. Также примечание в разделе Building with Visual Studio 15 (2017) and 16 (2019) | depends |
CMAKE_INSTALL_PREFIX | Выходная папка при создании целевой "INSTALL" см. также раздел Running and installing FreeCAD | Windows' default program installation folder |
FREECAD_COPY_DEPEND_DIRS_TO_BUILD | Копии библиотек, необходимых для выполнения FreeCAD.exe в папку сборки. См. также раздел Running and installing FreeCAD. "Примечание:" параметры FREECAD_COPY_XXX отображаются только в том случае, если библиотеки еще не были скопированы. Поэтому при переходе на другую версию LibPack важно удалить все папки в папке сборки, кроме папки LibPack. В CMake удалите кэш и начните так, как будто вы компилируете в первый раз, и вы получите параметры FREECAD_COPY_XXX options. |
OFF |
FREECAD_COPY_PLUGINS_BIN_TO_BUILD | Copies Qt's plugin files needed to execute the FreeCAD.exe to the build folder. См. также раздел Running and installing FreeCAD. | OFF |
FREECAD_LIBPACK_USE | Switch the usage of the FreeCAD LibPack on or off | ON |
FREECAD_LIBPACK_DIR | Directory where the LibPack is | FreeCAD's source code folder |
FREECAD_RELEASE_PDB | Create debug libraries also for release builds | ON |
В зависимости от вашего компилятора процесс создания FreeCAD будет немного отличаться. В следующих разделах описаны известные вам рабочие процессы. Если вы создаете с помощью Qt Creator, перейдите к Building with Qt Creator, в противном случае продолжайте напрямую:
If you want build from the command line, CMake output will show you the proper command to run (which depends on the configured release directory). But this command will produce a Debug build which does not work on Windows and results in a Numpy import error in FreeCAD (which is a known issue but hard to fix). You need to specify the --config Release option to force a Release build:
cmake --build E:/release --config Release
Please note that setting CMake variables like CMAKE_BUILD_TYPE does not have any effect, only specifying the --config option as shown above works.
Теперь это займет довольно много времени.
Чтобы скомпилировать готовый к использованию FreeCAD, скомпилируйте целевую "INSTALL", см. раздел Running and installing FreeCAD.
Если вы не получили никаких ошибок, значит все готов. "Поздравляю!" Теперь вы можете выйти из MSVC или оставить его открытым.
"Примечание:" Для FreeCAD 0.20 требуется, по крайней мере, стандартная версия языка C++ 17, но сторонний компонент "flann" из LibPack еще не готов для этого. Поэтому вы получите ошибки компиляции для целевого "обратного проектирования". Чтобы исправить это, щелкните правой кнопкой мыши на этом целевом объекте в обозревателе решений MSVC и выберите в контекстном меню последнюю запись "Properties". В появившемся диалоговом окне измените "C++ Language Standard" на "ISO C++14". Наконец, снова создайте цель "ALL_BUILD".
Для отладочной сборки необходимо использовать Python, который входит в пакет LibPack. Чтобы гарантировать это:
As prerequisite for the debug build, you need to do this:
Теперь
Теперь это займет довольно много времени. Если ошибок компиляции не было, вы можете запустить отладочную сборку:
If there were no compilation errors, and if the FREECAD_COPY_* options mentioned in the CMake Configuration step above were enabled, you can start the debug build:
Это запустит отладочную сборку FreeCAD, и вы сможете использовать среду разработки MSVC для ее отладки.
Учебник по английскому языку, который начинается с настройки в графическом интерфейсе CMake и продолжается командой "Build" в Visual Studio 16 2019, доступен без списка на YouTube по адресу Tutorial: Build FreeCAD from source on Windows 10.
Теперь FreeCAD можно построить
После завершения его можно запустить: В левом нижнем углу есть 2 зеленых треугольника. Один из них-отладка. Другой "run". Выбери, что тебе больше нравится.
Шаги по компиляции из командной строки зависят от компилятора. Для MSVC 2017 следующие шаги:
msbuild ALL_BUILD.vcxproj /p:Configuration=Release
или
msbuild INSTALL.vcxproj /p:Configuration=Release
Эти шаги также могут быть автоматизированы. Вот, например, решение для MSVC 2017:
compile-FC install
Вместо вызова compile-FC с опцией install вы также можете использовать debug или release.:
debug - компиляция FreeCAD в конфигурации отладки
release - компиляция FreeCAD в конфигурации выпуска
install - скомпилируйте FreeCAD в конфигурации выпуска и создайте установку установки
Существует 2 метода для запуска скомпилированного FreeCAD:
"Метод 1": Вы выполняете FreeCAD.exe которые вы найдете в своей папке сборки во вложенной папке "bin"
"Метод 2": Вы создаете целевую "УСТАНОВКУ"
Метод 2 является более простым, поскольку он автоматически гарантирует, что все библиотеки, необходимые для запуска FreeCAD.exe находятся в нужной папке. В FreeCAD.exe и библиотеки будут выведены в папку, указанную вами в переменной CMake "CMAKE_INSTALL_PREFIX".
Для метода 1 вам нужно поместить библиотеки в папку "bin" вашей папки сборки (где FreeCAD.exe есть). Это можно легко сделать:
When running FreeCAD you may encounter missing DLLs when using certain workbenches or features of workbenches. The error message in FreeCAD's console will not tell you what DLL is missing. To find this out you must use an external tool:
import os os.system(r"~\DependenciesGui.exe")
Note: Instead of the ~ you must specify the full path to the DependenciesGui.exe on your system.
FreeCAD очень активно развивается. Поэтому его исходный код меняется почти ежедневно. Добавляются новые функции и исправляются ошибки. Чтобы извлечь выгоду из этих изменений исходного кода, вы должны перестроить свой FreeCAD. Это делается в два этапа:
При использовании Git frontend TortoiseGit:
Наконец, нажмите "ОК".
Откройте терминал (командная строка) и переключитесь там в свой исходный каталог. Затем введите:
git pull https://github.com/FreeCAD/FreeCAD.git master
где "master" - название основной ветви разработки. Если вы хотите получить код из другой ветви, используйте ее имя вместо "master".
If a new major version of a third-party dependency like Open Cascade is released, or if a third-party dependency has important bug fixes, a new LibPack is released. You can find the latest version here.
To update your LibPack the following recipe is best practice:
Для того, чтобы включиться к разработке FreeCAD, вы должны скомпилировать и установить следующие инструменты:
FreeCAD использует Qt в качестве инструментария для его пользовательского интерфейса. Все диалоговые окна настраиваются в UI-файлах, которые можно редактировать с помощью программы Qt Designer, который является частью любой установки Qt, а также включен в пакет LibPack. FreeCAD имеет свой собственный набор виджетов Qt для предоставления специальных функций, таких как добавление единицы измерения в поля ввода и настройка свойств настроек.
DLL не может быть загружена как плагин, если она была скомпилирована с использованием другой версии Qt, чем тот, на котором основан ваш Qt Designer/Qt Creator. В этом случае вы должны скомпилировать DLL самостоятельно. Это делается следующим образом:
As result you will get the plugin file 'FreeCAD_widgets.dll in the folder
~\src\Tools\plugins\widget\Release
(Повторно)Запустите Qt Designer и проверьте его меню Help → Plugins. Если плагин "' FreeCAD_widgets.dll"' указана как загружаемая, теперь вы можете создавать и изменять файлы .ui FreeCAD. Если нет, вы должны compile создать библиотеку DLL самостоятельно.
Если вы предпочитаете использовать Qt Creator вместо Qt Designer библиотека DLL должна быть помещена в эту папку:
"C:\Qt\Qt5.15.2\Tools\QtCreator\bin\plugins\designer"
(Повторно)Запустите Qt Creator, переключитесь в режим "Design", а затем проверьте меню Tools → Form Editor → About Qt Designer Plugins. Если плагин "' FreeCAD_widgets.dll"' указана как загружаемая, теперь вы можете создавать и изменять файлы .ui FreeCAD. Если нет, вы должны compile создать библиотеку DLL самостоятельно.
FreeCAD имеет функцию предварительного просмотра миниатюр для файлов *.FCStd. Это означает, что в проводнике файлов Windows *.FCStd файлы отображаются со снимком экрана модели, которую он содержит. Чтобы предоставить эту функцию, FreeCAD должен иметь файл "'FCStdThumbnail.dll"" где установлено в Windows.
Библиотека DLL устанавливается таким образом:
regsvr32 FCStdThumbnail.dll
Поэтому проверьте, работает ли это, убедитесь, что в FreeCAD включена опция настроек "Save thumbnail into project file when saving document"" и сохраните модель. Затем просмотрите в проводнике Windows папку сохраненной модели, используя представление символов. Теперь вы должны увидеть снимок экрана модели в представлении папок.
Для компиляции FCStdThumbnail.dll
Стандартный пакет Libpack поставляется с версией OpenCascade, подходящей для общего использования. Однако при некоторых обстоятельствах вы можете захотеть скомпилировать с альтернативной версией OpenCascade, такой как один из их официальных релизов или исправленная ветвь. Обратите внимание, что нет никакой гарантии, что FreeCAD будет работать со всеми версиями OpenCascade, и использование версии, отличной от Libpack, предназначено только для продвинутых пользователей. Обратите также внимание, что если вы используете библиотеку Netgen, она использует OpenCascade для некоторых своих функций и должна быть скомпилирована с той же версией OpenCascade, которую вы используете при компиляции FreeCAD.
When compiling Open Cascade for FreeCAD note that there is no guarantee that FreeCAD will work with all versions of Open Cascade. Note also that when you are using the Netgen library, you must use the a NetGen version that it approved to compile with the Open Cascade version you like to compile.
Сначала получите исходный код OpenCascade либо непосредственно со страницы выпуска по адресу OpenCASCADE.org, через git, или путем клонирования чужой вилки, например вилка "blobfish" поддерживается участником форума FreeCAD tanderson69.
Затем используйте CMake для настройки системы сборки аналогично созданию FreeCAD. Примечательными вариантами CMake для OpenCascade являются:
To build FreeCAD using the self-compiled Open Cascade, you must do the following:
The LibPack comes with a version of Netgen that will was tested to be build with the Open Cascade version of the LibPack. The problem is that every new release of Netgen changes the API. Also every new release of Open Cascade does the same. Therefore one cannot just easily change the Netgen version.
However, you might build Netgen nevertheless. This is an easy task:
Variable name | Description | Default |
---|---|---|
CMAKE_INSTALL_PREFIX | The output folder when building the target INSTALL. If the build was successful, take the files from this folder to update your LibPack. | C:/netgen |
OpenCasCade_DIR | The path to the CMake files of Open Cascade. If you built Open Cascade as described in the section Compiling Open Cascade you can use the subfolder cmake of there folder you used as INSTALL_DIR. If not, use the subfolder cmake of your LibPack. Note hereby that the LibPack must then already contain a proper Open Cascade build. Independent what folder you use, you must now also create there a subfolder lib and copy in the files freetype.lib and freetyped.lib from your LibPack. | empty |
USE_GUI | set it to OFF | ON |
USE_NATIVE_ARCH | set it to OFF; this is only necessary important to support older CPU that don't have the AVX2 instruction set | ON |
USE_OCC | set it to ON | OFF |
USE_PYTHON | set it to OFF | ON |
USE_SUPERBUILD | set it to OFF | ON |
ZLIB_INCLUDE_DIR | The path to the necessary 3rdparty component zlib. It is recommended to use the folder as input where your used LibPack is. | empty |
ZLIB_LIBRARY_DEBUG | The path to the ZLib file zlibd.lib. It is located in the subfolder lib of your LibPack folder. | empty |
ZLIB_LIBRARY_RELEASE | The path to the ZLib file zlib.lib. It is located in the subfolder lib of your LibPack folder. | empty |
name: CMAKE_DEBUG_POSTFIX, type: string, content: _d
This assures that he file names of the debug libraries get another name than the release libraries and can later not be accidentally exchanged.
To build FreeCAD using the self-compiled Netgen, you must do the following:
Смотрите также